package com.yanfan.zutai.domain;

import com.yanfan.common.annotation.Excel;
import com.yanfan.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author ruoyi
 * @date 2021-04-06
 */
@Data
public class BDeviceManager extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * id唯一标识
     */
    // long型转string，因为java和js对于long的位数不一致，会丢失精度，所以转换成string
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * guid唯一标识
     */
    private String guid;

    /**
     * 实时时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "最后在线时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date reportTime;

    /**
     * 设备编号
     */
    @Excel(name = "设备编号")
    private String deviceMac;

    /**
     * 设备卡号
     */
    private String deviceCard;

    /**
     * 设备名称
     */
    @Excel(name = "设备名称")
    private String deviceName;

    /**
     * 设备类型,20220605改为设备图片url
     */
    private String deviceType;
    /**
     * 设备型号
     */
    @Excel(name = "设备型号")
    private Integer deviceModel;

    /**
     * 设备状态
     */
    private Integer deviceStatus;

    /**
     * 安装时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "安装时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date installationTime;

    /**
     * 安装地址
     */
    @Excel(name = "安装地址")
    private String installationAddress;

    /**
     * 经度
     */
    private BigDecimal longitude;

    /**
     * 纬度
     */
    private BigDecimal latitude;
    /**
     * 是否基站定位
     */
    private Integer isLocation;

    /**
     * 设备号/设备名称查询
     */
    private String deviceQuery;
    private List<BDeviceParam> paramList;

    /*设备开关控制参数*/
    private String deviceDetail;
    /*设备控制，重启以及远程升级*/
    private String deviceContro;

    /*查询时间*/
    private String queryTime;
    /*查询参数*/
    private String queryParam;

    /*是否报警*/
    private String isWarn;

    /*查询工单、查询报警、查询全部*/
    private String queryType;
    /**
     * 刷新时间
     */
    private Integer refreshTime;
    /**
     * 是否分享
     */
    private Integer isShare;

    /**
     * 分享URL
     */
    private String shareUrl;

    /**
     * 当前步骤
     */
    private Integer step;

    /*查询emqx*/
    private Boolean queryEmqxStatus = false;

    /**
     * 硬件型号
     */
    private String hardwareModel;

    /**
     * 设备固件版本
     */
    private String firmwareVersion;
    /**
     * 当前设备固件版本
     */
    private String firmwareVersionNew;
    /**
     * 固件地址
     */
    private String firmwareUrl;
    /**
     * 升级说明
     */
    private String upgradeExplain;
    /**
     * 设备信号
     */
    private String deviceSignal;

    /**
     * 联网方式
     */
    private String networkModel;

    /**
     * 网关模式
     */
    private String gatewayModel;
    private String queryDeptId;
    // 升级进度
    private Integer percentage;
    /**
     * vpn状态
     */
    private Integer vpnState;

    /**
     * 升级模式
     */
    private Integer upgradeModel;

    /**
     * 脚本guid
     */
    private String scriptGuid;

    private String deptIdStrs;

}
